/*
 *  This file is part of Fax .NET.
 *
 *  Fax .NET is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU Lesser General Public License as published by
 *  the Free Software Foundation.
 * 
 *  Fax .NET is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Lesser General Public License for more details.
 * 
 *  You should have received a copy of the GNU Lesser General Public License
 *  along with Fax .NET.  If not, see <http://www.gnu.org/licenses/>.
 */

using System;

namespace Tourreau.Gilles.FaxDotNet
{
    /// <summary>
    /// Represents an the differents queue status of a <see cref="FaxJob"/>.
    /// </summary>
    [Flags]
    public enum FaxQueueStatus
    {
        /// <summary>
        /// The fax job is in the queue and pending service.
        /// </summary>
        Pending = 0x00000000,

        /// <summary>
        /// The fax job is in progress.
        /// </summary>
        InProgress = 0x00000001,

        /// <summary>
        /// The fax server is deleting the fax job.
        /// </summary>
        Deleting = 0x00000002,

        /// <summary>
        /// The fax job failed.
        /// </summary>
        Failed = 0x00000004,

        /// <summary>
        /// The fax server paused the fax job.
        /// </summary>
        Paused = 0x00000008,

        /// <summary>
        /// There is no line available to send the fax. The fax server will send the transmission when a line is available.
        /// </summary>
        NoLine = 0x00000010,

        /// <summary>
        /// The fax job failed. The fax server will attempt to retransmit the fax after a specified interval.
        /// </summary>
        Retrying = 0x00000020,

        /// <summary>
        /// The fax server exceeded the maximum number of retransmission attempts allowed. The fax will not be sent.
        /// </summary>
        RetriesExceed = 0x00000040
    }
}
